package com.lagou.homework.modulefour.first;

import java.lang.reflect.Constructor;

/*
 * @className WorkerTest
 * @description 员工测试类
 * @author admin
 * @date 2022/4/1 15:13
 * */
public class WorkerTest {

    public static void main(String[] args) {

        try {
            // 1.使用反射机制以有参构造方法创建对象并打印
            Class c = Class.forName("com.lagou.homework.modulefour.first.Worker");
            // 2.获取Class对应类中的有参构造方法，也就是Worker类中的有参构造方法
            Constructor constructor = c.getConstructor(String.class, int.class);
            // 3.通过netInstance方法中的实参给有参构造方法的形参进行初始化给name和age赋值
            // 当name为""时报出NullPointerException异常
            // 当age小于18，大于150时报出自定义异常->年龄异常信息
            Object o = constructor.newInstance("", 151);
            o = constructor.newInstance(null, 20);
            o = constructor.newInstance("周瑜", 17);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
